package com.tsk.example.config.constants;

import java.util.HashMap;
import java.util.Map;

/**
 * @author: 黄嘉振
 * @create: 2023/3/9 18:00
 * @description:    静态常量类，项目中涉及的静态常量统一存放在该目录
 *                  命名：静态常量命名一般为 大写字符 + _
 *                  修饰：一般 static final 为必须修饰符
 *                      基础类型时，可用 public 修饰
 *                      引用类型时，使用 private 修饰，并添加对于的 public方法获取对应属性
 *                      常量为引用类型时，只是地址是不变的，即指针不可变；但是指针指向的对象却是可以变化的
 *                      而在配置类中，一般约定的配置对象仅是做常量用途，
 *                      即保证对象的值也是不可变的，所以不能直接将对象的权限为public
 **/
public class DemoConstants {
    public static final String FIELD_1 = "field1";

    public static final Integer DEFAULT_PAGE_NUM = 1;

    public static final Integer DEFAULT_PAGE_SIZE = 100;

    public static final Integer MAX_PAGE_SIZE = 100;

    private static final Map<String, String> FIELD_MAPPING = new HashMap<>();
    static {
        FIELD_MAPPING.put("field1", "value1");
    }

    public static String getField(String key) {
        // 使用 get 或者 getOrDefault 方法则根据各自业务场景而定
        return FIELD_MAPPING.getOrDefault(key, "");
    }
}
